#ifndef OPERATE_H
#define OPERATE_H

/*
 * 操作类进行具体的显示操作
 * param: b_obj 产生事件的按钮对象， display_obj QLabel对象， lcd_obj LCDNmber对象， sign 运算符按钮文本
 */

#include <QObject>
#include <QPushButton>
#include <QLabel>
#include <QDebug>
#include <QLCDNumber>
#include <QVector>
#include <QStringList>
#include "VectorClass.h"

class Operate : public QObject
{
    Q_OBJECT
public:
    explicit Operate(QObject *parent = nullptr);
    QString num;
    QPushButton *b;
    int n=0;

public slots:
    void print(QPushButton *b_obj, QLabel *display_obj);  // 管理数字按钮在标签QLabel上的显示
    void print(QPushButton *b_obj, QLabel *display_obj, QLCDNumber * lcd_obj);  // 管理等于按钮在标签QLabel和结果在QLCDNumber上的显示
    void print(QLabel *display_obj, QString sign);  // 管理运算符号按钮在标签QLabel和结果在QLCDNumber上的显示

    void clear(QLabel *display_obj, QLCDNumber * lcd_obj);  // 管理清除按钮 B_AC
    void del(QLabel *display_obj);  // 管理删除按钮
};

#endif // OPERATE_H
